home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
tex-k
/
lucida-1.2.tar.gz
/
lucida-1.2.tar
/
lucida-1.2
/
psnfss.sup
< prev
next >
Wrap
Text File
|
1992-08-22
|
8KB
|
248 lines
\def\filedate{18.8.92}%
\def\filename{psnfss.sup}%
\def\fileversion{PSNFSS 2.2.5}%
% Sebastian Rahtz,
% 12 Cygnet Street
% York Y02 1AG
% spqr@minster.york.ac.uk
\newif\if@loud@psnfss
\@loud@psnfssfalse % make true to get loading messages
\immediate\write\sixt@@n{\filename, \fileversion <\filedate> (SPQR)}%
\immediate\write\sixt@@n{PostScript additions to NFSS}%
% This is the main addition to the NFSS commands, which is normally
% loaded into a format, but can also be included by style files for other
% formats. It defines some commands needed to load PostScript fonts
%
% Left to itself, the NFSS restricts a number of commands
% to the preamble only. I want to be able to load fonts anywhere
% in the document, so I take a copy now before the NFSS disables them!
%
\let\late@extra@def=\extra@def
\let\late@subst@fontshape=\subst@fontshape
\let\late@new@fontshape=\new@fontshape
%%
%% Generalized scheme for PostScript fonts, assuming they
%% all have the same basic structure. What method of scaling is used
%% is determined by \scaling@type (see below)
%%-----------------------------------------------------------
%% Some of these macros adapted from npsfonts.sty by Timothy van Zandt
%%-----------------------------------------------------------
%%
%% An optional first argument to \declare@font scales the font
%% parameters
% 1 - scaling factor
% 2 - name of font family
% 3 - series
% 4 - style
% 5 - fontname
\def\declare@font{%
\@ifnextchar [{\declare@@font}{\declare@@font[1]}}%
%
\def\declare@@font[#1]#2#3#4#5%
{\scaling@type{#1}%
\late@new@fontshape{#2}{#3}{#4}{\scaled@sizes{#5}}{}}%
%
\def\font@scale#1#2#3{\dimen@=#2\dimen@=#3\dimen@
\edef\scaled@sizes##1{\scaled@sizes{##1}<#1>##1 at\the\dimen@ }}%
%
% recommended by Y&Y for their Lucida Bright distribution
%
\def\scale@lucidasizes#1{%
\edef\scaled@sizes##1{}%
\font@scale{5}{5.2pt}{#1}%
\font@scale{6}{6.1pt}{#1}%
\font@scale{7}{6.9pt}{#1}%
\font@scale{8}{7.8pt}{#1}%
\font@scale{9}{8.6pt}{#1}%
\font@scale{10}{9.5pt}{#1}%
\font@scale{11}{10.4pt}{#1}%
\font@scale{12}{11.2pt}{#1}%
\font@scale{14}{12.9pt}{#1}%
\font@scale{17}{15.5pt}{#1}%
\font@scale{20}{18.1pt}{#1}%
\font@scale{25}{22.4pt}{#1}%
\font@scale{29}{29.86pt}{#1}%
\font@scale{34}{35.83pt}{#1}%
\font@scale{41}{41.28pt}{#1}}%
%
% normal PS fonts. open to discussion
\def\scale@stdsizes#1{%
\edef\scaled@sizes##1{}%
\font@scale{5}{5pt}{#1}%
\font@scale{6}{6pt}{#1}%
\font@scale{7}{7pt}{#1}%
\font@scale{8}{8pt}{#1}%
\font@scale{9}{9pt}{#1}%
\font@scale{10}{10pt}{#1}%
\font@scale{11}{10.95pt}{#1}%
\font@scale{12}{12pt}{#1}%
\font@scale{14}{14.4pt}{#1}%
\font@scale{17}{17.28pt}{#1}%
\font@scale{20}{20.74pt}{#1}%
\font@scale{25}{24.88pt}{#1}%
\font@scale{29}{29.86pt}{#1}%
\font@scale{34}{35.83pt}{#1}%
\font@scale{41}{41.28pt}{#1}}%
%%
%% An optional first argument to
%% \postscript@font scales the font
\def\postscript@fontdef{%
\@ifnextchar [{\postscript@font}{\postscript@font[1]}}%
%%
\def\postscript@font[#1]#2#3#4#5#6#7#8#9{%
\expandafter\ifx\csname l@d#3\endcsname\relax
% 2 : full name for family
% 3 : short name for family
% 4 : tfm name for normal font
% 5 : tfm name for italic font
% 6 : tfm name for boldfont
% 7 : tfm name for bolditalic font
% 8 : tfm name for smallcaps font
% 9 : tfm name for slanted font
\if@loud@psnfss
\immediate\write\sixt@@n
{*** Defining fonts for PostScript #2 family at scale #1}%
%\immediate\write\sixt@@n
% {#3 as shortname}%
%\immediate\write\sixt@@n
% {#4 as TFM name for normal font}%
%\immediate\write\sixt@@n
% {#5 as TFM name for italic font}%
%\immediate\write\sixt@@n
% {#6 as TFM name for bold font}%
%\immediate\write\sixt@@n
% {#7 as TFM name for bolditalic font}%
%\immediate\write\sixt@@n
% {#8 as TFM name for smallcaps font}%
%\immediate\write\sixt@@n
% {#9 as TFM name for slanted font}%
%
\fi
\declare@font[#1]{#3}{m}{n}{#4}%
\declare@font[#1]{#3}{m}{it}{#5}%
\declare@font[#1]{#3}{bx}{n}{#6}%
\declare@font[#1]{#3}{bx}{it}{#7}%
\declare@font[#1]{#3}{m}{sc}{#8}%
\declare@font[#1]{#3}{m}{sl}{#9}%
\late@extra@def{#3}{}{}%
%
% bold and bold-extended regarded as the same
% slanted and smallcaps only in normal font
\late@subst@fontshape{#3}{b}{sc}{#3}{m}{sc}%
\late@subst@fontshape{#3}{b}{sl}{#3}{m}{sl}%
\late@subst@fontshape{#3}{bx}{sc}{#3}{m}{sc}%
\late@subst@fontshape{#3}{bx}{sl}{#3}{m}{sl}%
\late@subst@fontshape{#3}{b}{n}{#3}{bx}{n}%
\late@subst@fontshape{#3}{b}{it}{#3}{bx}{it}%
%
% there are a number of changes to make,
% and additions, to get the best use out of the PS fonts
%
\expandafter\let\csname l@d#3\endcsname\@empty
\chardef\pounds='243
\def\H##1{{\accent"CD ##1}}
\def\.##1{{\accent"C7 ##1}}
% borrowd this from Tom Rokicki
\newdimen\aadimen
\def\AA{\leavevmode\setbox0\hbox{h}\aadimen\ht0
\advance\aadimen-1ex\setbox0\hbox{A}\rlap{\raise.67\aadimen
\hbox to \wd0{\hss\char'27\hss}}A}
\def\aa{\char'227}%
\chardef\cent="0A2
\chardef\yen="0A5
\chardef\currency="0A8
\chardef\quotesingle="0A9
\chardef\guillemotleft="0AB
\chardef\guilsinglleft="0AC
\chardef\guilsinglright="0AD
\chardef\quotesinglbase="0B8
\chardef\quotedblbase="0B9
\chardef\guillemotright="0BB
\else
\if@loud@psnfss
\immediate\write\sixt@@n
{Family #3 already set up}%
\fi
\fi
}%
\let\scaling@type\scale@stdsizes
%%
%%% now the user interface
%% the user types something like \romanfont{times}%
%% -- if the command sequence \load@times is defined, it is executed
%-------------------------------------------------------------
\def\romanfont#1{%
\expandafter\ifx\csname load@#1\endcsname\relax
\typeout{**** ERROR!!! font family #1 UNKNOWN ****}%
\else
\csname load@#1\endcsname
\renewcommand{\rmdefault}{#1}\rm
\if@loud@psnfss
\typeout{Default roman typeface now #1}%
\fi
\fi}%
\def\sansfont#1{%
\expandafter\ifx\csname load@#1\endcsname\relax
\typeout{**** ERROR!!! font family #1 UNKNOWN ****}%
\else
\csname load@#1\endcsname
\renewcommand{\sfdefault}{#1}\rm
\if@loud@psnfss
\typeout{Default sans-serif typeface now #1}%
\fi
\fi}%
\def\typewriterfont#1{%
\expandafter\ifx\csname load@#1\endcsname\relax
\typeout{**** ERROR!!! font family #1 UNKNOWN ****}%
\else
\csname load@#1\endcsname
\renewcommand{\ttdefault}{#1}\rm
\if@loud@psnfss
\typeout{Default typewriter typeface now #1}%
\fi
\fi}%
%-------------------------------------------------------------
%%%
%%% some dummies for CMR
\def\load@cmr{}%
\def\load@cmss{}%
\def\load@cmtt{}%
%%% see times.sty, palatino.sty etc for example definitions of loading
%%% Times, Palatino, Avantgarde, Bookman, NCS, Courier and Helvetica
%%% etc, using the Karl Berry names for Adobe fonts,
%%% USING VIRTUAL FONTS TO MIMIC CMR LAYOUT! (Not DC).
%%% An example is:
%-----------------------------------------
%% \def\load@courier{%
%% \postscript@fontdef{Courier}{courier}%
%% {pcrr}{pcrro}{pcrb}{pcrbo}{pcrr}{pcrr}%
%% }%
%% \def\load@helvetica{%
%% \postscript@fontdef{Helvetica}{helvetica}%
%% {phvr}{phvro}{phvb}{phvbo}{phvrc}{phvro}%
%% }%
%% \def\load@times{%
%% \postscript@fontdef{Times}{times}%
%% {ptmr}{ptmri}{ptmb}{ptmbi}{ptmrc}{ptmro}%
%% }%
%% %
%% \romanfont{times}%
%% \sansfont{helvetica}%
%% \typewriterfont{courier}%
%%
%% some useful hacks....
%%
\newcount\driver@setup
\driver@setup=3
% a little something for LaTeX to make colour.sty work
\def\visible{}
\newif\if@visible\@visibletrue
%
% a tool from Van Zandt for showing x-height of a font
%
\def\showxheight#1{%
\font\@tempfont=#1 at 10pt%
\typeout{^^J x-height of #1 at 10pt is \the\fontdimen5\@tempfont}}
%
\endinput